package com.weipt.juc.lock;

import java.util.concurrent.TimeUnit;

/**
 * @author peter.wei 2020/09/10 16:22
 * @version 1.0
 * @company CBI
 * @description <br>peter.wei 2020/09/10 16:22 8锁问题
 * 谁调用方法锁谁，方法分为静态和非静态
 * 非静态锁对象，静态锁类的模板
 * 问题5:当锁的是静态方法，用同一或不同对象去调用，锁会等待，因为锁得是class模板，class只有一个，所以需要等待
 * 但静态方法不建议使用类去调用
 **/
public class Lock8_5 {
    public static void main(String[] args) {
        Test5 test1 = new Test5();
        new Thread(()->{
            try {
                test1.call();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }).start();
        new Thread(()->{test1.sms();}).start();
    }
}


class Test5{
    public synchronized static void call() throws InterruptedException {
        TimeUnit.SECONDS.sleep(2);
        System.out.println(Thread.currentThread().getName()+"=>打电话");
    }

    public synchronized static void sms(){
        System.out.println(Thread.currentThread().getName()+"=>发短信");
    }
}